cmake_minimum_required(VERSION 3.20)
project(web_test)

set(CMAKE_CXX_STANDARD 11)
#set(CMAKE_VERBOSE_MAKEFILE ON)
#set(CMAKE_CXX_FLAGS -O2  -std=c++11 -Wall ")
add_compile_options(-std=c++11)

set(LIR_TCJ
        buffer.cpp
        epoll.cpp
        timer.cpp
        HTTPrequest.cpp
        HTTPresponse.cpp
        HTTPconnection.cpp
        webserver.cpp
        main.cpp)
add_library(tcj SHARED ${LIR_TCJ})



set(LIB_TCJ
        LIR_TCJ
        pthread)


#
#add_executable(test tests/test.cpp)
#add_dependencies(test sylar)
#force_redefine_file_macro_for_sources(test)
##将目标文件与库文件进行链接 第一个是目标文件，后面是库文件
#target_link_libraries(test tcj ${LIB_TCJ})



#通过指定的源文件列表构建出可执行目标文件
add_executable(test_buffer test/test_buffer.cpp)
#先生成test_config对syalr的依赖，然后再去通过上面一条命令生成test_config
add_dependencies(test_buffer tcj)
target_link_libraries(test_buffer  tcj pthread)



#通过指定的源文件列表构建出可执行目标文件
add_executable(test_thread test/test_thread.cpp)
#先生成test_config对syalr的依赖，然后再去通过上面一条命令生成test_config
add_dependencies(test_thread tcj)
target_link_libraries (test_thread pthread) #依赖线程



#通过指定的源文件列表构建出可执行目标文件
add_executable(test1 main.cpp)
#先生成test_config对syalr的依赖，然后再去通过上面一条命令生成test_config
add_dependencies(test1 tcj)
target_link_libraries (test1 tcj pthread) #依赖线程






#EXECUTABLE_OUTPUT_PATH:表示最终的目标二进制位置
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR})
#LIBRARY——OUTPUT_PATH：表示最终的共享库
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

#g++ -std=c++11 -O2 -Wall -g ./buffer.cpp ./HTTPrequest.cpp ./HTTPresponse.cpp ./HTTPconnection.cpp ./timer.cpp ./epoll.cpp ./webserver.cpp ./main.cpp -o ./bin/myserver -pthread